perm filename DEFINI.LSP[W84,JMC] blob sn#740341 filedate 1984-01-22 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	 defini.lsp[w84,jmc]	EKL definition principle
C00004 00003	 An attempt to put the definitions in parametrized form
C00006 ENDMK
C⊗;
;;; defini.lsp[w84,jmc]	EKL definition principle

(decl par (type: |ground|))
(decl atc (type: |ground⊗ground→ground|))
(decl pairc (type:|ground⊗ground⊗ground⊗(ground→ground)⊗(ground→ground)→ground|))
(decl flat (type: |ground⊗ground→ground|))
(decl (f g) (type: |ground→ground|))

(axiom |∀atc pairc.
	(∃fun.(∀x y par.(atom x ⊃ fun(x,par) = atc(x,par))
∧ (fun(x.y,par) = pairc(x,y,par,λpar.fun(x,par),λpar.fun(y,par)))))|)
(label newsexpinductiondef)

(define flat
	|∀x y u.(atom x ⊃ flat(x,u) = x.u) ∧ (flat(x.y,u) = flat(x,flat(y,u)))|
	(use newsexpinductiondef
	     ue:
	     ((atc.|λx par.x.par|)
	      (pairc.|λ x y par f g.f(g(par))|))))

(decl (f g) (type: |(ground*) → (ground*)|))

(define flat
	|∀x y u.(atom x ⊃ flat(x,u) = x.u) ∧ (flat(x.y,u) = flat(x,flat(y,u)))|
	(use newsexpinductiondef1
	     ue:
	     ((atc1.|λx u.x.u|)
	      (pairc1.|λ x y u f g.f(g(u))|))))
;;; An attempt to put the definitions in parametrized form

(decl flat (type: |ground⊗ground→ground|))

(axiom |∀atc1 pairc1.
	(∃nfun.(∀x y pars.(atom x ⊃ nfun(x,pars) = atc1(x,pars))
∧ (nfun(x.y,pars) = pairc1(x,y,λpars.nfun(x,pars),λpars.nfun(y,pars),pars))))|)
(label newsexpinductiondef1)

(decl (f g) (type: |(ground*) → (ground*)|))

(define flat
	|∀x y u.(atom x ⊃ flat(x,u) = x.u) ∧ (flat(x.y,u) = flat(x,flat(y,u)))|
	(use newsexpinductiondef1
	     ue:
	     ((atc1.|λx u.x.u|)
	      (pairc1.|λ x y f g u.f(g(u))|))))

60. ;ATC1 is unknown.
;PAIRC1 is unknown.
;NFUN is unknown.
;the symbol NFUN declared to have type (GROUND⊗(GROUND*))→GROUND
;the symbol PAIRC1 declared to have type (GROUND⊗GROUND⊗((GROUND*)→GROUND)⊗((GROUND*)→GROUND)⊗(GROUND*))→GROUND
;the symbol ATC1 declared to have type (GROUND⊗(GROUND*))→GROUND
61. ;Labeled.
61. 
62. ;ue: λX Y F G U.F(G(U)) does not have the appropriate type.
62.